/** 
 * \file   facturationFM.C
 * \author ade
 * \author morgane
 * \author heni
 * \brief Implementation de l'interface facturationFM.h
 */

#include <stdio.h>
#include <stdlib.h>
#include "FacturationFM.h"
#include "typesprimitifs.h"
#include "commande.h"
#include "fournisseur.h"

POINTEUR_FACTURATIONFM creer_facturationFM(POINTEUR_FOURNISSEUR pfournisseur,
        DOUBLE montt, POINTEUR_COMMANDE pcommande) {

    POINTEUR_FACTURATIONFM pfactFM = malloc(sizeof (*pfactFM));
    if (pfournisseur == NULL || pcommande == NULL) {
        liberer_facturationFM(pfactFM);
        return NULL;
    }
    pfactFM->fournisseur = pfournisseur;
    pfactFM->montant = montt;
    pfactFM->commande = pcommande;
    pfactFM->regle = faux;

    return pfactFM;
}

void afficher_facturationFM(POINTEUR_FACTURATIONFM pfactFM) {
    if (pfactFM != NULL) {
        printf("Fournisseur :\n");
        afficher_fournisseur(pfactFM->fournisseur);
        printf("Montant     : %g \n", pfactFM->montant);
        printf("Commande    :\n");
        afficher_commande(pfactFM->commande);
        /* Conditionnelle ternaire: si regle='o'alors oui, sinon non */
        printf("Commande regle ? %s \n", pfactFM->regle == vrai ? "oui" : "non");
        fflush(stdout);
    }
}

void liberer_facturationFM(POINTEUR_FACTURATIONFM pfactFM) {
    free(pfactFM);
}
